home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / pascal / boi.exe / BOI120.DOC < prev    next >
Text File  |  1990-12-12  |  22KB  |  527 lines

  1. BOI Reference Manual 1.20  12/15/90
  2.  
  3.  
  4.     BBS Onliner Interface 1.20
  5.     (C) 1990 Andrew J. Mead
  6.     All Rights Reserved.
  7.  
  8.     Contact:
  9.     POB 1155
  10.     Chapel Hill, NC 27514-1155
  11.           or
  12.     1:151/223.36 FidoNet
  13.     #98@9968 WWIVnet
  14.  
  15.     Turbo Pascal and TP are registered trademarks of Borland International.
  16.     Quick Basic and QB are registered trademarks MicroSoft Incorporated.
  17.  
  18.  
  19.     Sections in order of Appearance
  20.       Initial Statement
  21.       ShareWare Liscense Agreement
  22.       Registration Cost
  23.       Technical Support
  24.       Registration Agreement
  25.       UNIT BIODECL
  26.       UNIT GETCMBBS
  27.       UNIT IOLIB
  28.       UNIT ASYNC
  29.       UNIT IOSUPP
  30.       UNIT SUPPORT
  31.       BOI Documentation Files
  32.       Future Enhancements
  33.       Implementation Discussion
  34.  
  35.  
  36.     Initial Statement
  37.       I would like to see the command line switches used by this interface
  38.       become a standard for BBS online doors.  Since the BBS programmers
  39.       are not creating a standard drop file very quickly, we door programmers
  40.       will need to make do.  If you are not a Turbo Pascal programmer, I
  41.       still ask that you consider implementing my command line switching
  42.       system.
  43.  
  44.       The UNIT sections of this document detail the functionality of each
  45.       procedure and function contained in each unit.  Unit BIODECL is
  46.       pretty much self explanatory, and looking at it directly is the
  47.       best way to get information on it.
  48.  
  49.  
  50.     ShareWare Liscence Agreement
  51.       This package is ShareWare.  If you use this package, please send me
  52.       money.  Feel free to use the ideas and code from this package, but
  53.       if you use the interface itself to any extent, place the following
  54.       on the opening or copyright screen.
  55.  
  56.       BBS Onliner Interface version 1.20
  57.       (C) 1990 Andrew J. Mead
  58.       All Rights Reserved.
  59.       Contact: POB 1155 Chapel Hill, NC 27514-1155
  60.  
  61.       If you alter the code, put your revision number AFTER the '1.20'
  62.       ie (version 1.20 revision 1.0).  I will maintain, and steadily
  63.       update the interface.  If you have any ideas, suggestions, or
  64.       improvements, please send them to me.  There is plenty of room for
  65.       improvement in the interface.
  66.  
  67.  
  68.     Registration Costs
  69.       If you use the interface, I ask that you pay a royalty of $1U.S.
  70.       per registration.  If the door you release has a registration fee
  71.       of less than $10, I waive this request.  The money recieved from
  72.       the BOI will be set aside to pay for distribution of later versions
  73.       and my phone bill.  If you register, I will make every effort to
  74.       make sure that you recieve every upgrade.  The registration fee
  75.       for the BOI is $35.00 U.S. (and is credited against any future
  76.       royalties).  There will be a Turbo C version of the interface
  77.       available in 1991.  See BOIREG.DOC for registration form.
  78.  
  79.  
  80.     Technical Support
  81.       I am always willing to offer support.  I can be reached at #98@9968
  82.       on the WWIVnet and 1:151/223.36 on the FidoNet.  A support conference
  83.       on both systems may become available if demanded.  Please be specific
  84.       with your questions, and include any details you have.  If someone
  85.       out there would like to help with the technical support, let me know.
  86.  
  87.  
  88.     UNIT BIODECL
  89.       See BIODECL.PAS for documentation.  This Unit is merely a
  90.       clearing house for public variables and constants.  This is used
  91.       by every other unit and the door program itself.
  92.  
  93.     UNIT GETCMBBS
  94.  
  95.       Uses
  96.         Dos
  97.         BOIDecl
  98.  
  99.       Procedure
  100.         GetCommand
  101.  
  102.       Procedure GETCOMMAND(infofile, inhof, logfile : pathstr;
  103.           gamename, version : string;  programset : charset);
  104.  
  105.         infofile   - name of the doors documentation file.
  106.         inhof      - default name for text hall of fame (can be '').
  107.         logfile    - name of error log.
  108.         gamename   - name of the door.
  109.         version    - door version number (string).
  110.         programset - set of door defined command line arguments.  Must
  111.             be in ['+','-','=','[',']','.'].  These arguments are to
  112.             be processed by the door itself.
  113.  
  114.         GetCommand is the front-end of the interface.  it reads the
  115.         BBS dropfile, and initializes the communications settings.
  116.  
  117.  
  118.     UNIT IOLIB
  119.  
  120.       Uses
  121.         Dos
  122.  
  123.       Functions
  124.         Exist                     GetTimer                  IntStr
  125.         KeyPressed                LeftTime                  Max
  126.         Min                       PadStr                    PortKeyPressed
  127.         ReadKey                   ReadPortKey               RealStr
  128.         Valid                     WhereX                    WhereY
  129.  
  130.       Procedures
  131.         ClearBuffers              ClrPortEol                ClrPortScr
  132.         Delay                     DoTimeOut                 EndPort
  133.         GetString                 GotoPortXY                PortBackground
  134.         PortColor                 PortColumnOne             PortWindow
  135.         ResetPortXY               SendString                SetPort
  136.         SetPortXY                 TextPortColor             TimerSet
  137.  
  138.       Procedure CLEARBUFFERS
  139.         ClearBuffers empties both the host keyboard and the port input
  140.         buffers.  This procedure is helpful in controlling 'Type-ahead'
  141.         problems.  With a 1k port input buffer, the remote user could
  142.         inadvertently lean a key putting hundreds of key-strokes into the
  143.         buffer.
  144.  
  145.       Procedure CLRPORTSCR                                  ANSI
  146.         ClearPortScr sends the ANSI code to clear the defined screen
  147.         window (PortWindow).  If there is a remote user, the current
  148.         status line will be written on line 25 on the host screen.
  149.         This replaces TPs CRT ClrScr.
  150.  
  151.       Procedure CLRPORTEOL                                  ANSI
  152.         ClearPortEol sends the ANSI code to clear the current line from
  153.         the current cursor position to the right edge of the screen.
  154.  
  155.       Procedure DELAY(ms : Word)                            BIOS
  156.         This procedure is identical to the one in TPs CRT Unit.  ms
  157.         is the approxiamate time of CPU delay in milliseconds (993 per
  158.         second).
  159.  
  160.       Procedure DOTIMEOUT(ringbell : boolean)
  161.         This procedure is called upon modem or user inactivity time-out.
  162.         There should be no reason for the door itself to call this procedure.
  163.         ringbell tells it to echo a bell to the remote user (if communications
  164.         still exist).
  165.  
  166.       Procedure ENDPORT
  167.         EndPort should be the last line of your door program.  This procedure
  168.         disables the BIO Async routines, and restores the previously
  169.         installed routines.  This procedure should be called before
  170.         the program ends, especially during abnormal termination, so that
  171.         the BBSs communication routines are re-established.  See SetPort.
  172.  
  173.       Function EXIST(thisfile : pathstr) : boolean
  174.         Exists tells whether or not ThisFile exists or not.  Should be used
  175.         in conjunction with Valid.  This is a public domain function.
  176.  
  177.       Procedure GETSTRING(var gstr : string)
  178.         GetString returns all characters input locally and from remote upto
  179.         the next carriage return.  This is a 'dumb' procedure, and will not
  180.         reject any characters.  See ReadKey and ReadPortKey.
  181.  
  182.       Function GETTIMER(var basetime : longint; val : word) : boolean
  183.         basetime - clockticks since midnight (18.2 per second)
  184.         val      - number of seconds
  185.  
  186.         GetTimer returns true if val seconds have passed since basetime.
  187.         You must use SetTimer to initialize basetime.  These two procedures
  188.         can be used for many purposes including benchmarks and user
  189.         inactivity timeouts.  See SetTimer.
  190.  
  191.       Procedure GOTOPORTXY(x,y : byte)                      ANSI
  192.         GotoPortXY uses ANSI codes to position the cursor.  Replaces
  193.         TPs CRT GotoXY.
  194.  
  195.       Function INTSTR(val : longint; isize : byte) : string
  196.         val   - ennumerated value